package com.xinchuang.common;

import lombok.Getter;

@Getter
public enum ResultEnum {

    /**
     *
     */
    SUCCESS(200, "操作成功"),

    UNAUTHORIZED(401, "登录信息已过期，请重新登陆"),

    OUT(402, "用户使用期限已到期，请续费后重试"),

    USEREXIST(10001, "登录信息已过期，请重新登陆"),

    USER_EMPTY(10002, "用户不存在，请联系管理员处理"),

    PASSWORD_ERROR(10003, "账号或密码错误，请重新输入"),

    USER_EXIST(10004, "用户名重复，请修改后重试"),

    USERNAME_PASSWORD_ERROR(10005, "用户名或密码不能为空"),

    ICON_FORMAT_ERROR(10006, "暂不支持当前文件格式"),

    ICON_UPLOAD_ERROR(10007, "图片上传失败，请重试"),

    SYSTEMERROR(500, "系统异常，请稍后重试"),

    TARGET_EMPTY(20001, "目标不存在/已删除"),

    STATUS_EMPTY(20002, "状态不存在，请稍后重试"),

    DELETE_EMPTY(20003, "删除的信息不能为空"),

    ADD_EMPTY(20004, "新增的信息不能为空"),

    ADD_EMTRY(20004, "新增的信息不能为空"),

    COMMON_KEY_EXIST(20005, "字段名称已重复，请修改后重试"),

    COMMON_KEY_NAME_EXIST(20006, "属性名称已重复，请修改后重试"),

    COMMON_EMPTY(20007, "当前属性已删除/不存在，请勿重复操作"),

    UPDATE_EMPTY(20008, "更新的信息不能为空"),

    SIGN_ERROR(20009, "新增格式不正确，请联系管理员处理"),

    PARENT_ERROR(20010, "无效的子节点，请联系管理员处理"),

    TARGET_TYPE_NAME_EXIST(20011, "节点名称已存在，请修改后重试"),

    TARGET_TYPE_PARENT_NOT_DEL(20012, "根节点不能删除，重新选择"),

    TARGET_TYPE_PARENT_UPDATE(20013, "根节点不能修改，重新选择"),

    TYPE_ID_EMPTY(20014, "请选择需要查看的类别"),

    TYPE_EMPTY(20015, "类别不存在/已被删除，重新选择"),

    TYPE_UPLOAD_EMPTY(20016, "请选择需要上传的类别"),

    SQL_ERROR(20017, "数据写入失败，请稍后重试"),

    DELETE_EMPTY_ERROR(20018, "当前信息已被删除/不存在"),

    ROOT_ERROR(20019, "不能选择根节点作为类别，请重新选择"),

    ADD_TARGET_DATA_LIST_ERROR(20020, "修改的信息不能为空"),

    SELECT_EMPTY(20021, "查询信息不存在/已删除"),

    PARAM_ERROR(20022, "参数格式不正确，请重新填写后重试"),

    SYSTEM_COMMOM_IS_NOT_DELETE(20023, "系统参数，不能删除"),

    AUTO_REMARK_IS_EMPTY(20024, "自动生成描述不存在，请联系管理者"),

    KNOW_TYPE_IS_NOT_EMPTY(20025, "当前知识种类不存在/已删除，请重新选择"),

    SAVE_IS_ERROR(20026, "保存信息有误，请重新选择"),

    SCORE_IS_ERROR(20027, "价值评分选择有误，请重新选择"),

    WEIGHT_IS_ERROR(20028, "权重选择有误，请重新选择"),

    /**
     * 外部接口
     */
    TARGET_CREATE_ERROR(60001, "目标创建失败，请稍后重试"),

    ELEMENT_GET_ERROR(60002, "要素获取失败，请重试"),

    EXTERNAL_TARGET_EMPTY(60003, "当前目标不存在/或已被删除"),

    BASE_GET_ERROR(60004, "基本信息获取失败，请重试"),

    IMAGE_UPLOAD_ERROR(60005, "图片上传失败，请稍后重试"),

    UPDATE_ERROR(60006, "更新失败，请重试"),

    EXTERNAL_SYSTEM_EMPTY(60007, "当前系统不存在/或已被删除"),

    EXTERNAL_RAPEX_EMPTY(60008, "请先选择一个体系"),

    /**
     * 目标300**
     */
    TARGET_NAME_REPETITION(30001, "目标名称不能重复"),

    TARGET_NAME_IS_NOT_NULL(30002, "目标名称或国家不能为空"),

    TARGET_IS_NOT_NULL(30003, "暂无新增或修改的内容"),

    DELETE_TARGET_IS_NOT_NULL(30004, "请先选择需要删除的目标"),

    TARGET_IS_NOT_EXIST(30005, "目标不存在,请先创建目标数据"),

    SUB_TARGET_IS_NOT_EXIST(30006, "子目标不存在,请先创建目标数据"),

    SUB_NAME_REPETITION(30007, "子目标名称已存在，请重新命名"),

    SUB_TARGET_IS_EMPTY(30008, "请选择需要删除的子目标"),

    DELETE_ERROR(30009, "删除失败，请稍后重试！"),

    RELATION_NOT_NULL(30010, "请选择关联关系"),

    SUB_TARGET_NOT_NULL(30011, "请选择相关子目标"),

    TARGET_TYPE_NOT_NULL(30012, "主目标类型不能为空，请先添加类型后重试"),

    TARGET_TYPE_NOT_SUB(30013, "主目标类型没有子类型，请联系管理员进行处理"),

    TARGET_MESSAGE_IS_EMPTY(30014, "目标信息不存在，请重新编辑后重试"),

    TARGET_SUB_TYPE_IS_ERROR(30015, "子目标类型不存在/已删除,请重新选择类型"),

    POSTURE_TARGET_IS_NOT_EXIST(300016, "态势目标不存在,请先创建目标数据"),

    /**
     * 系统400**
     */
    SYSTEM_NAME_NOT_NULL(40001, "系统名称不能为空"),

    SYSTEM_TYPE_NOT_NULL(40002, "系统类型不能为空"),

    SYSTEM_IS_NULL(40003, "请先选择需要修改的系统"),

    SYSTEM_ELSE_NULL(40004, "暂无需要更新的数据"),

    SYSTEM_IS_EXIST(40005, "系统不存在/已被删除"),

    /**
     * 体系500**
     */
    SYSTEMS_NAME_NOT_NULL(50001, "体系名称不能为空"),

    SYSTEMS_INCLUDE_NOT_NULL(50002, "体系包含类型不能为空"),

    SYSTEMS_IS_NULL(50003, "请先选择需要修改的体系"),

    SYSTEMS_ELSE_NULL(50004, "暂无需要更新的数据"),

    SYSTEMS_IS_EXIST(50005, "体系不存在/已被删除"),

    SYSTEMS_NAME_EXIST(50006, "当前名称已存在，请重新修改"),

    /**
     * 武器600**
     */
    WEAPON_NAME_NOT_NULL(60001, "武器名称不能为空，请填写后重试"),

    WEAPON_NAME_EXIST(60002, "武器名称已存在，请重新修改");;

    private Integer code;

    private String message;

    ResultEnum(Integer code, String message) {
        this.code = code;
        this.message = message;
    }

    public static String getByValue(int code) {
        for (ResultEnum value : values()) {
            if (value.getCode() == code) {
                return value.getMessage();
            }
        }
        return null;
    }

}
